package applicationModels;

import java.io.Serializable;

import org.uqbar.commons.utils.Observable;

import dominio.Mejora;
import dominio.Planta;
import dominio.Usuario;

@Observable
public class Mejorar implements Serializable{
	private Usuario usuario;
	private Planta plantaAMejorar;
	private Mejora mejoraAComprar;
	
	public Mejorar(Usuario usuario, Planta planta,String mejora){
		this.usuario = usuario;
		this.plantaAMejorar = planta;
		this.buscarYSetearMejora(mejora);
	}
	
	public Mejorar(Usuario usuario, Planta planta) {
		this.usuario = usuario;
		this.plantaAMejorar = planta;
	}
	
	
	
	public void buscarYSetearMejora(String mejoraNombre){
		for (Mejora m : this.plantaAMejorar.getMejorasDisponibles()) {
			if(m.getNombre().equals(mejoraNombre)){
				this.mejoraAComprar = m;
				break;
			}
			//System.out.println("no se encontro mejora de dicho nombre");
		};
	}
	
	public void mejorar() {
		this.usuario.mejorarPlanta(this.plantaAMejorar, this.mejoraAComprar);
	}
	
	public Planta getPlantaAMejorar() {
		return plantaAMejorar;
	}

	public void setMejoraAComprar(Mejora mejora) {
		this.mejoraAComprar = mejora;
	}
	
	public Mejora getMejoraAComprar() {
		return this.mejoraAComprar;
	}
	
	public void setPlantaAMejorar(Planta plantaAMejorar) {
		this.plantaAMejorar = plantaAMejorar;
	}
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
}
